package com.obelisco.vista.componentes;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;

import javax.sql.DataSource;

import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRField;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperRunManager;

import org.springframework.context.ApplicationContext;

import com.obelisco.modelo.data.auxiliares.Archivo;
import com.obelisco.vista.inicio.Aplicacion;

public class ProcesadorReporte implements IProcesadorReporte {

	private DataSource dataSource;

	private String servletReporte;
	
	public Archivo generarReporte(String definicion, Map parametros) {
		// TODO Auto-generated method stub
		Connection connection;

		Archivo archivo = new Archivo();

		byte[] bytes = null;

		try {
			System.out.println("1");
			connection = dataSource.getConnection();
			System.out.println("2");
			bytes = JasperRunManager.runReportToPdf(definicion, parametros,
					connection);
			System.out.println("3");
			archivo.setContenido(bytes);
			System.out.println("4");
			archivo.setTipo("application/pdf");
			System.out.println("5");

			
		} catch (JRException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}		

		return archivo;
	}


	public String getURIReporte() {
		// TODO Auto-generated method stub
		return getServletReporte();
	}

	
	public String getServletReporte() {
		return servletReporte;
	}


	public void setServletReporte(String servletReporte) {
		this.servletReporte = servletReporte;
	}


	public DataSource getDataSource() {
		return dataSource;
	}


	public void setDataSource(DataSource dataSource) {
		this.dataSource = dataSource;
	}



}
